#include "DATA.h"

DT::DT(size_t count)
{
  jsonMsg=NULL;
  jsonLen = count;
}

int DT::createJson(String upname,float value) {
  free(jsonMsg);
  // Json对象对象树的内存工具 静态buffer 200 是大小 如果这个Json对象更加复杂，那么就需要根据需要去增加这个值.
  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& root = jsonBuffer.createObject();       //"上面的这个Json对象",创建根，也就是顶节点
  JsonArray& datastreams = root.createNestedArray("datastreams"); //在ROOT节点中创建一个数组对象
  JsonObject& id = datastreams.createNestedObject();        //在datastreams数组对象中创建对象
  id["id"] = upname;
  JsonArray& datapoints = id.createNestedArray("datapoints");   //在id对象中建立一个datepointes数组对象
  JsonObject& nested = datapoints.createNestedObject();       //在datapoints数组对象中建立nested对象
  nested["value"] = value;  //传入数据
  jsonLen = root.measureLength();  //单行长度
  jsonLen++; //添加了一个'\0'
  char jsonData[jsonLen];
  root.printTo(jsonData, jsonLen);  //将生产的json代码给jsonData数组
  /** 打印长度 **/
  //Serial.print("\n Line Json Length:");
  //Serial.println(jsonLen - 1);
  //Serial.println(jsonData);
  jsonMsg = (char *)malloc(sizeof(jsonData));
  strcpy(jsonMsg,jsonData);
  return jsonLen;
}
